﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.ObjectBuilder;
using LiclBases;
using System.Collections.Generic;
using com.creditos.be.liclEntities;
using com.creditos.be.liclBases;
using com.creditos.util.liclUtil;
using System.Collections.Specialized;
using com.creditos.be.liclSolcred;
using System.Text;
using LiclBases.Views;

public partial class solcred_FormsConCentralRiesgos : CreditosPaseBase, ILiclBases
{
    private LiclBasesPresenter _presenter = new LiclBasesPresenter();
    private decimal _NumeroSolicitud;
    public decimal NumeroSolicitud
    {
        get { return _NumeroSolicitud; }
        set { _NumeroSolicitud = value; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        String numerosolicitud = Request.QueryString["Solicitud"] == null ? "0000" : Request.QueryString["Solicitud"];
        this.NumeroSolicitud = decimal.Parse(numerosolicitud);
        int origen = Request.QueryString["Origen"]==null? 0 : int.Parse(Request.QueryString["Origen"]);
        this.NumeroSolicitud = origen;
        if (!this.IsPostBack)
        {
            _presenter.View = this;
            Master.TituloModulo = "Consulta Central Riesgo";
            this.pnDatosSolicitante.Visible = false;
            ClienteConsulta oIntegrantes = new ClienteConsulta();
            oIntegrantes.NumeroSolicitud = int.Parse(numerosolicitud);
            oIntegrantes.OrigenSolicitud = origen;
            _presenter.ObtenerListaIntegrantesBuroCredito(oIntegrantes);
            UCBarraHerramienta1.btnReproceso.Visible = false;
            UCBarraHerramienta1.btnImprimir.Visible = false;
            UCBarraHerramienta1.btnInicializa.Visible = false;
        }
        _presenter.View = this;
    }

    protected override void DefineHandlers()
    {
        UCBarraHerramienta1.btnIniciar.Click += new EventHandler(btnIniciar_Click);
        UCBarraHerramienta1.btnIniciar.Attributes.Add("onClick", "if(!procesandoConfirma('" + Resources.Creditos.MSG_CONFIRMACION_CENTRAL + "'))return false;");     
        gvClienteConsulta.SelectedIndexChanged += new EventHandler(gvClienteConsulta_SelectedIndexChanged);
        UCBarraHerramienta1.btnSalir.Click += new EventHandler(btnSalir_Click);                
    }

    protected void gvClienteConsulta_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (gvClienteConsulta.Rows.Count > 0)
        {
            GridViewRow row = gvClienteConsulta.SelectedRow;            
            ClienteConsulta oSolicitud = new ClienteConsulta();
            oSolicitud.NumeroSolicitud = int.Parse(Request.QueryString["Solicitud"]);
            int intCodigoIntegrante = row.Cells[2].Text == string.Empty ? 0 : int.Parse(row.Cells[2].Text);
            int intCodigoConsulta = row.Cells[3].Text == string.Empty ? 0 : int.Parse(row.Cells[3].Text);
            oSolicitud.CodigoIntegrante = intCodigoIntegrante;
            oSolicitud.CodigoConsulta = intCodigoConsulta;
            oSolicitud.OrigenSolicitud = int.Parse(Request.QueryString["Origen"]);
            _presenter.OnCargarInforme(oSolicitud);
        }
    }

    void btnIniciar_Click(object sender, EventArgs e)
    {
        bool estado = false;
        if (gvClienteConsulta.Rows.Count > 0)
        {
            foreach (GridViewRow row in gvClienteConsulta.Rows)
            {
                CheckBox cb = (CheckBox)row.FindControl("chkColumnaIni");
                if (cb != null && cb.Checked)
                {
                    ClienteConsulta oClienteConsulta = new ClienteConsulta();
                    List<ClienteConsulta> ClienteConsultaList = new List<ClienteConsulta>();
                    oClienteConsulta.NumeroSolicitud = decimal.Parse(Request.QueryString["Solicitud"]);
                    oClienteConsulta.NumPedidoVerificacion = Convert.ToDecimal("1");//
                    oClienteConsulta.TipoPersona = int.Parse("1");
                    oClienteConsulta.TipoDocIdentidad = Convert.ToDecimal("1");
                    oClienteConsulta.NumDocIndentidad = "10866123";
                    oClienteConsulta.NomCliente = "Paul Mostiga";
                    //datakey 6 para Flag Envio
                    oClienteConsulta.ApellidoPaterno = "Mostiga";
                    oClienteConsulta.ApellidoMaterno = "Alvarado";
                    oClienteConsulta.PrimerNombre = " Paul";
                    oClienteConsulta.SegundoNombre = "";
                    oClienteConsulta.OrigenSolicitud = int.Parse(Request.QueryString["Origen"]);
                    int intCodigoIntegrante = row.Cells[2].Text == string.Empty ? 0 : int.Parse(row.Cells[2].Text);
                    oClienteConsulta.CodigoIntegrante = intCodigoIntegrante;

                    if (oClienteConsulta.OrigenSolicitud == 1)
                    {
                        int intCodigoConsulta = row.Cells[3].Text == string.Empty ? 0 : int.Parse(row.Cells[3].Text);
                        oClienteConsulta.CodigoConsulta = intCodigoConsulta;
                    }

                    ClienteConsultaList.Add(oClienteConsulta);
                    _presenter.OnInciar(ClienteConsultaList);
                    oClienteConsulta.Accion = int.Parse(Request.QueryString["Origen"]);

                    _presenter.EvaluarCentralRiesgo(oClienteConsulta);
                    estado = true;

                    String numerosolicitud = Request.QueryString["Solicitud"] == null ? "0000" : Request.QueryString["Solicitud"];
                    this.NumeroSolicitud = decimal.Parse(numerosolicitud);
                    int origen = Request.QueryString["Origen"] == null ? 0 : int.Parse(Request.QueryString["Origen"]);

                    ClienteConsulta oIntegrantes = new ClienteConsulta();
                    oIntegrantes.NumeroSolicitud = int.Parse(numerosolicitud);
                    oIntegrantes.OrigenSolicitud = origen;
                    _presenter.ObtenerListaIntegrantesBuroCredito(oIntegrantes);
                }
            }
            if(estado==false)
                MostrarMensajeError("Debe seleccionar al integrante que desea consultar en certicom...");        
        }
        else {
            MostrarMensajeError("No hay lista de integrantes");        
        }

    }
    void btnSalir_Click(object sender, EventArgs e)
    {        

        if (Request.QueryString["Origen"] == "1")
        {
            string url = "FormsManSolicitud.aspx?NroSol=" + int.Parse(Request.QueryString["Solicitud"]);
            string script = "window.location = '" + url + "';";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", script, true);
        }
        else if (Request.QueryString["Origen"] == "2")        
        {
            string url = "FormsManEvaluacionProspecto.aspx";
            string script = "window.location = '" + url + "';";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", script, true);
        }
    }
    public string ObtenerTitulosGrilla(string valor, string nivel)
    {
        string valorfinal = string.Empty;

        valor = valor.Replace("_", "&nbsp;&nbsp;&nbsp;");
        if (nivel.Trim().Length == 4)
        {
            valorfinal = "<b>" + valor + "</b>";
        }
        else
        {
            valorfinal = valor;
        }
        return valorfinal;
    }
    private string ObtenerImagenTabs(string valor)
    {
        switch (valor)
        {
            case "0": return "~/Image/expander.jpg";
            case "1": return "~/Image/contraer.jpg";
            default: return "~/Image/expander.jpg";
        }
    }
    public string ObtenerImagenLupita(string valorFiltro)
    {
        return string.Empty;

    }
    public string ObtenerTipoDocumentoProtesto(string tipodoc)
    {
        return string.Empty;
    }
    public string ObtenerImagenResultadoFiltro(string valorFiltro)
    {
        return string.Empty;
    }
    public string ObtenerImagenResultado(string valor)
    {
        switch (valor)
        {
            case "1": return com.creditos.util.liclUtil.Utilitario.UrlImagenResultadoProspecto.URLIMAGE_VERDE;
            case "2": return com.creditos.util.liclUtil.Utilitario.UrlImagenResultadoProspecto.URLIMAGE_AMARILLO;
            case "3": return com.creditos.util.liclUtil.Utilitario.UrlImagenResultadoProspecto.URLIMAGE_ROJO;
            default: return com.creditos.util.liclUtil.Utilitario.UrlImagenResultadoProspecto.URLIMAGE_DEFAULT;
        }
    }    
    public string ObtenerComandName(string valor)
    {
        return string.Empty;

    }
    public string ObtenerDescripcionTipopesona(string valor)
    {
        return string.Empty;
    }
    public string ObtenerNombreReferencia(string valor)
    {

        return string.Empty;
    }
    public string ObtenerNombreDocumentoIdentidad(string valor)
    {
        return string.Empty;
    }

    public void btnBuroProtestos_Click(object sender, ImageClickEventArgs e)
    {
        mvProtestos.Visible = !mvProtestos.Visible;                
    }

    public void btnBuroAdversos_Click(object sender, ImageClickEventArgs e)
    {
        mvAdversos.Visible = !mvAdversos.Visible;       
    }    
    public void ClasificarProtestos(List<Protesto> list)
    {
        List<Protesto> listaAceptante = new List<Protesto>();
        List<Protesto> listaGirador = new List<Protesto>();

        foreach (Protesto item in list)
        {
            if (item.TipoProtesto == 1)
            {
                listaAceptante.Add(item);

            }
            else
            {
                if (item.TipoProtesto == 2)
                {
                    listaGirador.Add(item);

                }
            }
        }

        lblTituloProtestosGirador.Visible = listaGirador.Count > 0 ? true : false;
        lblTituloProtestosAceptante.Visible = listaAceptante.Count > 0 ? true : false;

        UIBindable.Bind(gvProtestosAceptante, listaAceptante);
        UIBindable.Bind(gvProtestosGirador, listaGirador);

    }
    public void btnBuroMorosidad_Click(object sender, ImageClickEventArgs e)
    {
        mvMorosidad.Visible = !mvMorosidad.Visible;

    }


    #region ILiclBases Members

    public void CargarListaResultadoReglas(List<ReglasEvaluacion> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(gvReglasEvalu, lst);
        }
    }

    public void CargarListaIntegrantesBuroCredito(List<IntegrantesBuro> lst)
    {
        if (lst.Count > 0)
        {
            txtSolicitud.Text = Request.QueryString["Solicitud"];
            txtTipoDocumento.Text = lst[0].DescripcionTipoDocumento;
            txtNroDocumento.Text = lst[0].NumeroDocumento;
            txtNombres.Text = lst[0].ApellidoNombre;

            UIBindable.Bind(gvClienteConsulta, lst);
        }
    }

    public void MostrarMensajeError(string Mensaje)
    {
        Master.MostrarMensaje(Mensaje, 0);
    }

    public void CargarBuroDatosGenerales(List<DatGen> lst)
    {
        if (lst.Count > 0)
        {

            pnDatosSolicitante.Visible = true;
            mvDatosGenerales.ActiveViewIndex = 0;
            UIBindable.Bind(this.txtCliente, lst[0].NomCliente);
            UIBindable.Bind(this.txtContribuyente, lst[0].TipoContribuyente);
            UIBindable.Bind(this.txtCliente, lst[0].NomCliente);
            UIBindable.Bind(this.txtCIIU, lst[0].Actividad);
            UIBindable.Bind(this.txtDocumento, lst[0].NroDocumento);
            UIBindable.Bind(this.txtRuc, lst[0].NroRuc);
            UIBindable.Bind(this.txtDireccion, lst[0].NomDirreccion);
            UIBindable.Bind(this.txtDistrito, lst[0].NomDistrito);
            UIBindable.Bind(this.txtProvincia, lst[0].NomProvincia);
            UIBindable.Bind(this.txtDepartamento, lst[0].NomDepartamento);
            UIBindable.Bind(this.txtCondDomicilio, lst[0].TipoDomicilio);
            UIBindable.Bind(this.txtTeleFax, lst[0].NumTelFax);
            UIBindable.Bind(this.txtTelefono, lst[0].NumTelefono);
        }
    }

    public void CargarBuroOtraDireccion(List<OtrDir> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(gvDir, lst);
        }
    }

    public void CargarBuroOmisos(List<Omisos> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(this.gvOmisos, lst);
        }
    }

    public void CargarBuroRepresentanteLegal(List<RepresentantesLegales> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(this.gvRepLeg, lst);
        }
    }

    public void CargarBuroCalificaciones(List<Calificacion> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(this.gvCalificacion, lst);
            this.phcalificacion.Visible = true;
            mvConsolidadoSBS.ActiveViewIndex = 0;
            pnDatosSolicitante.Visible = true;

          
                this.gvCalificacion.SelectedIndex = 0;

                lblFechaSBS.Text = com.creditos.util.liclUtil.Utilitario.DarFormatoFecha(lst[0].FechaReporte.ToString());
                lblNOR.Text = lst[0].CalNormal.ToString();
                lblCPP.Text = lst[0].CallCPP.ToString();
                lblDEF.Text = lst[0].CallDeficiente.ToString();
                lblDUD.Text = lst[0].CallDudoso.ToString();
                lblPER.Text = lst[0].CallPerdida.ToString();
                lblENT.Text = lst[0].Entidades.ToString();
            
        }
    }

    public void CargarBuroAdversos(List<Adversos> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(this.gvAdversosActual, lst);
        }
    }

    public void CargarBuroMorosidad(List<Morosidad> lst)
    {
        if (lst.Count > 0)
        {
            List<Morosidad> _MorosidadList = new List<Morosidad>();
            List<Morosidad> _MorosidadHistoricaList = new List<Morosidad>();
            List<Morosidad> _MorosidadActualList = new List<Morosidad>();

            _MorosidadList = lst;
            _MorosidadHistoricaList = lst.FindAll(delegate(Morosidad MH) { return MH.TipoMora == 2; });
            _MorosidadActualList = lst.FindAll(delegate(Morosidad MA) { return MA.TipoMora == 1; });
            if (_MorosidadHistoricaList.Count > 0)
            {
                lblEtiquetaMorosidadHistorica.Visible = true;
                UIBindable.Bind(this.gvwMorosidadHistorica, _MorosidadHistoricaList);
            }
            else
            {
                tblMorosidad.Visible = mvMorosidad.Visible = false;
                lblEtiquetaMorosidadHistorica.Visible = false;
            }

            if (_MorosidadActualList.Count > 0)
            {
                UIBindable.Bind(this.gvwMorosidadActual, _MorosidadActualList);
                tblMorosidad.Visible = mvMorosidad.Visible = true;
                lblEtiquetaMorosidadActual.Visible = true;
            }
            else
            {
                tblMorosidad.Visible = mvMorosidad.Visible = false;
                lblEtiquetaMorosidadActual.Visible = false;
            }
        }
    }

    public void CargarBuroProtestos(List<Protesto> lst)
    {
        if (lst.Count > 0)
        {
            ClasificarProtestos(lst);
            tblProtestos.Visible = mvProtestos.Visible = lst.Count > 0;
        }
    }

    public void CargarBuroResumenDeudaSBSEntidad(List<DeudaSBS> lst)
    {
        if (lst.Count > 0)
        {
            this.UCEntidades.MostrarDatos(lst);
        }
    }

    public void CargarBuroDeudaSBSEntidad(List<MorosidadSBS> lst)
    {
        if (lst.Count > 0)
        {
            UIBindable.Bind(gvMorosidadSBS, lst);
        }
    }

    #endregion
}
